functor F (P : sig type t end) =
struct
  type u = {y : int}
  val f : int -> u
end
